package com.ny.mapper;

import com.ny.entity.Device;
import com.ny.entity.Devicedb;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;

import java.util.List;
import java.util.Optional;

public interface DeviceMapperdb extends MongoRepository<Devicedb, Integer> {
    // 方法名解析：根据deviceName查询
    Optional<Devicedb> findByDeviceName(String deviceName);

    List<Devicedb> findAll();

    /**
     * 查询状态为离线的设备（status = 0）
     * @return 离线设备列表
     */
    List<Devicedb> findByStatus(Integer status);
    @Query("{'createTime': {$gte: ?0, $lte: ?1}, 'status': ?2}")
    List<Devicedb> findByCreateTimeBetweenAndStatus(Long startTime, Long endTime, Integer status);

    /**
     * 根据设备ID删除设备
     * @param deviceId 设备ID
     * @return 删除的设备数量
     */
    @Query("{'device_id': ?0}")
    void deleteByDeviceId(Integer deviceId);

    // 新增部分：添加根据device_id查找的方法
    @Query("{'device_id': ?0}")
    Optional<Devicedb> findByDeviceId(Integer deviceId);

}
